
public class GameManager implements GameManagerI {
	
	public static GameManager GM;
	
	public GLWindow glWindow;
	public StartGUI swingWindow;
	public EditorGUI editor;
	public OpenCoasterWindow openWindow;
	
	//The data design and implementation in GM may change
	private Rollercoaster theCoaster;
	private Cart theCart;

	public Database database;
	
	public GameManager() {
		//GM = new GameManager();
		
		//glWindow = new GLWindow();
		swingWindow = new StartGUI();
		swingWindow.setVisible(true);
		editor = new EditorGUI();
		editor.setVisible(false);
		openWindow = new OpenCoasterWindow();
		openWindow.setVisible(false);
		
		glWindow = new GLWindow();
		
		setCoaster(new Rollercoaster());
		theCart = new Cart(new Point3D(1,1,1), 10, getCoaster());
	}	
	
	@Override
	public float getGLWindowFPS() {
		return glWindow.FPS;
	}

	public void setCoaster(Rollercoaster theCoaster) {
		this.theCoaster = theCoaster;
	}

	public Rollercoaster getCoaster() {
		return theCoaster;
	}
	
	public static void main(String[] args) {
		GameManager.GM = new GameManager();
	}
}
